Create a separate Prisma schema file and a separate PrismaService subclass for each database. Each service extends PrismaClient with its own datasource URL. Register them as separate providers in the module and inject the appropriate one into each service.
Create a separate PrismaService subclass per database — each manages its own connection pool.
Pass the datasource URL via the constructor to avoid relying on environment variable naming conventions.
Generate separate Prisma Clients if the schemas differ: npx prisma generate --schema prisma/schema-users.prisma.
Cross-database transactions are not supported — design operations that only touch one database at a time.
Use Promise.all() for parallel reads across databases when the operations are independent.